/*
 * @lc app=leetcode.cn id=94 lang=c
 * @lcpr version=30204
 *
 * [94] 二叉树的中序遍历
 */

// @lcpr-template-start

#include <stdio.h>
#include <stdlib.h>

// @lcpr-template-end
// @lc code=start
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

//中序遍历的函数,左，根，右
void preorder(struct TreeNode *root,int *res,int *ressize)
{
    if(root==NULL) 
        return;     //循环结束标准
    preorder(root->left,res,ressize);//左
    res[(*ressize)++]=root->val;     //根
    preorder(root->right,res,ressize);//左
}

int *inorderTraversal(struct TreeNode *root, int *returnSize)
{
    int *res = (int*)malloc(sizeof(int)*100);
    *returnSize = 0;
    preorder(root,res,returnSize);
    return res;
}
// @lc code=end

/*
// @lcpr case=start
// [1,null,2,3]\n
// @lcpr case=end

// @lcpr case=start
// []\n
// @lcpr case=end

// @lcpr case=start
// [1]\n
// @lcpr case=end

 */
